#include<iostream>
using namespace std;

class A
{
public:
	class B
	{
	public:
		void BPrintA(const A& a)
		{
			cout << "void BPrintA(const A& a)" << endl;
			cout << "a._a = " << a._a << endl;
			cout << "si = " << si << endl;
			cout << "A::si = " << A::si << endl;
		}
		int _pb = 0;
	private:
		int _b = 1;
	};

	void APrintB(const B& b)
	{
		cout << "void APrintB(const B& b)" << endl;
		//cout << b._b << endl;
		cout << "b._pb = " << b._pb << endl;
	}
private:
	int _a = 2;
	static int si;
};

int A::si = 3;

int main()
{
	A a;
	//B b;
	A::B b;
	a.APrintB(b);

	b.BPrintA(a);

	cout << "A size = " << sizeof(A) << endl;
	return 0;
}